package com.aula.alex.sistema1;

import java.util.Vector;




/**
 *
 * @author 4810
 */
public class Menu 
{
    public void mostraMenu()
    {
        
        
        int opcao=0;
        while (opcao != 6) 
        {
            System.out.println("");
            System.out.println("Escolha a opcao desejada:");
            System.out.println("1-Cadastro funcionario");
            System.out.println("2-Apagar funcionario ");
            System.out.println("3-Listar todos os funcionarios");
            System.out.println("4-Listar funcionario");
            System.out.println("5-Aumentar salario");
            System.out.println("6-Sair");
            System.out.println("????????????????????");
            opcao= Entrada.readInt();

            switch(opcao)
            {
                case 1:
                cadastraFuncionario();          
                break;

                case 2:
                apagarFuncionario();
                break;

                case 3:
                listarFuncionairosTodos();
                break;
 
                case 4:
                listarFuncionarios();
                break;

                case 5:
                aumentarSalario();
                break;
                case 6:

                default:
                System.exit(0);
                break;

            }
        }

    }
    Vector<Funcionario> lista = new Vector();
    
    public void cadastraFuncionario()
    {
        Funcionario f = new Funcionario();
        System.out.println("--CADASTRO DE FUNCIONARIOS--");
        
        System.out.println("Didite o codigo do funcionario: ");
        int codigo = Entrada.readInt();
        f.setCodigo(codigo);  
        
        System.out.println("Digite o nome do funcionario: ");        
        String nome = Entrada.readString();
        f.setNome(nome);
        
        System.out.println("Digite o telefone: ");
        String telefone = Entrada.readString();
        f.setTelefone(telefone);
        
        System.out.println("Digite o endereco: ");
        String endereco = Entrada.readString();
        f.setEndereco(endereco);
        
        System.out.println("Digite a data de nascimento: ");
        String datanasci = Entrada.readString();
        f.setDatanasci(datanasci);
        
        System.out.println("Digite o salario: ");
        Double salario = Entrada.readDouble();
        f.setSalario(salario);
        
        lista.add(f);
        if(codigo == 0)
        {
            System.out.println("O funcionario precisa ter um codigo");
        }
        else
        {
            System.out.println("Funcionario cadastrado.");
        }
        
    }

    public void apagarFuncionario() 
    {
        boolean encontrou = false;
        
        System.out.println("Informe o codigo do funcionario qual voce deseja remover: ");
        int codigo = Entrada.readInt();
    
        for (int i=0; i < lista.size(); i++)
        {
            Funcionario f = lista.get(i);  
            

            if( f.getCodigo()==codigo)
            {
                lista.remove(i);
                encontrou = true;
            }
        }
        
        if ( ! encontrou )
        {
            System.out.println("Codigo nao encontrado.");
            
        }
    }
    
    public void listarFuncionairosTodos() 
    {
        for (int i=0; i < lista.size(); i++)
        {
            System.out.println("Total de funcionarios cadastrados:" +lista.size());
            Funcionario f = lista.get(i);            
            
            System.out.println("Codigo funcionario: "+f.getCodigo());
            System.out.println("Nome funcionario: "+f.getNome());
            System.out.println("Telefone funcionario: "+f.getTelefone());
            System.out.println("Endereco funcionario: "+f.getEndereco());
            System.out.println("Data de nascimento funcionario: "+f.getDatanasci());
            System.out.println("Salario funcionario: "+f.getSalario());
            System.out.println("-------###########-------");

        } 
    }

    public void listarFuncionarios() 
    {
        boolean encontrou = false;
        System.out.println("Digite o codigo do funcionario que voce deseja listar");
        int codigo = Entrada.readInt();
        for (int i=0; i < lista.size(); i++)
        {
            Funcionario f = lista.get(i);            
            if(f.getCodigo()==codigo)
            {
                System.out.println("Codigo do funcionario e: "+f.getCodigo());
                System.out.println("Nome do funcionario e: "+f.getNome());
                System.out.println("Telefone do funcionario e: "+f.getTelefone());
                System.out.println("Endereco do funcionario e: "+f.getEndereco());
                System.out.println("Data de nascimento do funcionario e: "+f.getDatanasci());
                System.out.println("Salario do funcionario e: "+f.getSalario());
                System.out.println("-----##################------");
                encontrou = true;
                     

            }  
                if ( ! encontrou )
            {
                System.out.println("Codigo nao encontrado.");

            }
            
                      
        }
        
    }

    public void aumentarSalario() 
    {
        System.out.println("Digite o codigo do funcionario que voce deseja aumentar o salario: ");
        int codigo = Entrada.readInt();
        System.out.println("Informe o percentual do aumento: ");
        double percentual = Entrada.readDouble();
        double p;
        p = percentual / 100;
        for (int i=0; i < lista.size(); i++)
        {
            Funcionario f = lista.get(i);
            if(f.getCodigo()==codigo)
            {
                double salarioAtual;
                salarioAtual = f.getSalario();
                double novoValor;
                novoValor =  salarioAtual +(salarioAtual* p);
                f.setSalario( novoValor );
                System.out.println("Salario aumentado.");
                

            }
                        
        }
        
        
    }

}